#ifndef __IDT_H
#define __IDT_H

#include <type.h>

#define IDT_TRAP        0x78
#define IDT_INTERRUPT   0x70
#define IDT_ATTR(dpl, type) (((type) << 5) | ((dpl & 3) << 13) | (1 << 15))

void set_idt_intr_entry(u32 vector, u16 seg_selector, void (*isr)(), u8 dpl);

void set_idt_trap_entry(u32 vector, u16 seg_selector, void (*isr)(), u8 dpl);

void init_idt();

#endif
